package com.hsh.server.project.user.service.impl;

import java.util.List;

import com.hsh.server.interceptor.UserUtils;
import com.hsh.server.project.user.entity.TAppCertificate;
import com.hsh.server.project.user.mapper.TAppCertificateMapper;
import com.hsh.server.project.user.service.ITAppCertificateService;
import com.hsh.server.util.Convert;
import com.hsh.server.util.DateUtils;
import com.hsh.server.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.servlet.View;

/**
 * 我的证件Service业务层处理
 * 
 * @author administrator
 * @date 2025-04-20
 */
@Service
public class TAppCertificateServiceImpl implements ITAppCertificateService
{
    @Autowired
    private TAppCertificateMapper tAppCertificateMapper;
    @Autowired
    private View error;

    /**
     * 查询我的证件
     * 
     * @param id 我的证件ID
     * @return 我的证件
     */
    @Override
    public TAppCertificate selectTAppCertificateById(Long id)
    {
        return tAppCertificateMapper.selectTAppCertificateById(id);
    }

    /**
     * 查询我的证件列表
     * 
     * @param tAppCertificate 我的证件
     * @return 我的证件
     */
    @Override
    public List<TAppCertificate> selectTAppCertificateList(TAppCertificate tAppCertificate)
    {
        tAppCertificate.setUserId(UserUtils.getUser().getUserId());
        return tAppCertificateMapper.selectTAppCertificateList(tAppCertificate);
    }

    /**
     * 新增我的证件
     * 
     * @param tAppCertificate 我的证件
     * @return 结果
     */
    @Override
    public R insertTAppCertificate(TAppCertificate tAppCertificate)
    {
        tAppCertificate.setCreateTime(DateUtils.getNowDate());

        if (tAppCertificate.getTCertificateName().equals("中华人民共和国不动产权证书")){
            TAppCertificate tAppCertificate1 = new TAppCertificate();
            tAppCertificate1.setTCertificateName(tAppCertificate.getTCertificateName());
            List<TAppCertificate> tAppCertificates = tAppCertificateMapper.selectTAppCertificateList(tAppCertificate1);
            if (tAppCertificates.size() > 0 && tAppCertificates.size() <= 2){
                for (TAppCertificate appCertificate : tAppCertificates) {
                    if (appCertificate.getContent().equals(tAppCertificate.getContent())){
                        return R.error("该编号已经存在");
                    }
                }
                tAppCertificateMapper.insertTAppCertificate(tAppCertificate);
            }else{
                return R.error("该用户不动产权证书已存在2个");
            }
        }
        return R.success(tAppCertificateMapper.insertTAppCertificate(tAppCertificate));
    }

    /**
     * 修改我的证件
     * 
     * @param tAppCertificate 我的证件
     * @return 结果
     */
    @Override
    public int updateTAppCertificate(TAppCertificate tAppCertificate)
    {
        return tAppCertificateMapper.updateTAppCertificate(tAppCertificate);
    }

    /**
     * 删除我的证件对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteTAppCertificateByIds(String ids)
    {
        return tAppCertificateMapper.deleteTAppCertificateByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除我的证件信息
     * 
     * @param id 我的证件ID
     * @return 结果
     */
    @Override
    public int deleteTAppCertificateById(Long id)
    {
        return tAppCertificateMapper.deleteTAppCertificateById(id);
    }
}
